package com.netdisk.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@ApiModel(description = "用户操作记录表")
public class UserActivity {

    @ApiModelProperty(value = "用户操作记录id")
    private Long id;

    @ApiModelProperty(value = "用户id")
    private Integer userId;

    @ApiModelProperty(value = "文件id")
    private Integer fileId;

    @ApiModelProperty(value = "文件名")
    private String fileName;

    /**
     * 操作类型
     * upload - 上传文件
     * download - 下载文件
     * share - 分享文件
     * delete - 删除文件(移至回收站)
     * restore - 从回收站恢复文件
     * remove - 永久删除文件
     * rename - 重命名文件
     * favorite - 添加文件到收藏夹
     * unfavorite - 从收藏夹移除文件
     */
    @ApiModelProperty(value = "操作类型")
    private String actionType;

    @ApiModelProperty(value = "操作描述")
    private String description;

    @ApiModelProperty(value = "操作时间")
    private LocalDateTime createdAt;

    /**
     * 用户 IP，用于安全审计，非必须
     */
    @ApiModelProperty(value = "操作IP地址")
    private String ipAddress;

    /**
     * 用户设备信息，用于分析和排错，非必须
     */
    @ApiModelProperty(value = "用户代理")
    private String userAgent;

}
